<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>OpenMesh: Tutorials (code examples)</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="logo_align.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="rwth_vci_rgb.jpg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">OpenMesh
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('a04349.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">Tutorials (code examples) </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>The OpenMesh mesh library is a powerful tool for handling polygonal meshes.</p>
<p>Due to its inherent generative structure it allows the user to create mesh types which are custom tailored to the specific needs of the application. The user can either supply his own data structures for representing vertices, edges and faces or he can conveniently use the predefined structures of OpenMesh. Additionally OpenMesh offers dynamic properties allowing the user to attach and detach data to the mesh during runtime.</p>
<p>This document is supposed to introduce the basic concepts of OpenMesh.</p>
<p>In this tutorial we will introduce the OpenMesh library by means of simple examples. The first one just builds a polygonal mesh representing a cube and writes the result to standard output. The following examples develop a simple mesh smoother: Recall that the immediate neighbors of a vertex are called the 1-ring of this vertex. It is well known that a polygonal mesh can be smoothed by repeatedly replacing each vertex' position by the center of gravity (cog) of its 1-ring. The basic smoother will</p>
<ul>
<li>read a polygonal mesh from standard input, </li>
<li>compute the cog of the 1-ring of each vertex, </li>
<li>replace each vertex' position by its cog and finally, </li>
<li>write the mesh to standard output.</li>
</ul>
<ol>
<li>
<a class="el" href="a04348.html">How to create your own project using OpenMesh</a> </li>
<li>
<a class="el" href="a04336.html">First Steps - Building a cube</a> </li>
<li>
<a class="el" href="a04337.html">Using iterators and circulators</a> </li>
<li>
<a class="el" href="a04338.html">Using (custom) properties</a> </li>
<li>
<a class="el" href="a04339.html">Using STL algorithms</a> </li>
<li>
<a class="el" href="a04347.html">Using Smart Handles</a> </li>
<li>
<a class="el" href="a04340.html">Using standard properties</a> </li>
<li>
<a class="el" href="a04341.html">Using mesh attributes and traits</a> </li>
<li>
<a class="el" href="a04342.html">Extending the mesh using traits</a> </li>
<li>
<a class="el" href="a04343.html">Deleting geometry elements</a> </li>
<li>
<a class="el" href="a04344.html">Using IO::Options</a> </li>
<li>
<a class="el" href="a04345.html">Using custom properties (old style)</a> </li>
<li>
<a class="el" href="a04346.html">Storing custom properties</a> </li>
</ol>
</div></div><!-- contents -->
</div><!-- doc-content -->
<hr>
<address>
<small>
<a href="http://www.rwth-graphics.de" style="text-decoration:none;">
</a>
Project <b>OpenMesh</b>, 
&copy;&nbsp; Computer Graphics Group, RWTH Aachen.
Documentation generated using 
<a class="el" href="http://www.doxygen.org/index.html">
<b>doxygen</b>
</a>.
</small>
</address>
</body>
</html>
